/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mx.itschapala.dsw2.vista;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.event.ActionEvent;
import mx.itschapala.dsw2.biblioteca8a.bl.LibroBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.PrestamoBlLocal;
import mx.itschapala.dsw2.biblioteca8a.bl.UsuarioBlLocal;
import mx.itschapala.dsw2.biblioteca8a.modelo.Libro;
import mx.itschapala.dsw2.biblioteca8a.modelo.Prestamo;
import mx.itschapala.dsw2.biblioteca8a.modelo.Usuario;

/**
 *
 * @author Marquez
 */
@ManagedBean
@SessionScoped
public class PrestarBean {
   
    
    //---------------EJB'S-------------------------
    @EJB
    private PrestamoBlLocal prestamoBl;
    @EJB
    private UsuarioBlLocal usuarioBl;
     @EJB
    private LibroBlLocal libroBl;
    
     
    //------------------variables(propiedades)--------------
     
    private String codigoLibro; 
    private List<Libro> librosLista;
    private List<Prestamo> lprestamo;
    private List<Usuario> listaUsuario;
    private Prestamo loan ;
    private Usuario usuario;
    private String accion;
    private int idUsusarioSeleccionado;
//-----------constructor--------------------------------
        
    public PrestarBean() {
        loan=new Prestamo();
        librosLista =new ArrayList<Libro>();
    }
    //-----------metodos GET y SET--------------------------------    

   
    public Prestamo getLoan() {
        return loan;
    }

    public void setLoan(Prestamo loan) {
        this.loan = loan;
    }

    public List<Libro> getLibrosLista() {
        librosLista=libroBl.getAll();
        return librosLista;
    }

//    public void setLibrosLista(List<Libro> librosLista) {
//        this.librosLista = librosLista;
//    }

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public List<Prestamo> getLprestamo() {
        lprestamo=prestamoBl.getAll();
        return lprestamo;
    }

    public List<Usuario> getListaUsuario() {
        listaUsuario=usuarioBl.getAll();
        return listaUsuario;
    }

    public String getCodigoLibro() {
        return codigoLibro;
    }

    public void setCodigoLibro(String codigoLibro) {
        this.codigoLibro = codigoLibro;
    }

    public int getIdUsusarioSeleccionado() {
        return idUsusarioSeleccionado;
    }

    public void setIdUsusarioSeleccionado(int idUsusarioSeleccionado) {
        this.idUsusarioSeleccionado = idUsusarioSeleccionado;
    }
    
    
    //-----------Acciones--------------------------------    
    public String procesarAccion() {
       if(accion.equalsIgnoreCase("Nuevo")){
           prestamoBl.lendBooks(null, librosLista);
       }
       if(accion.equalsIgnoreCase("Editar"))
       
        accion="";
        return "PrestamoVista";
    }
    
    //-----------Listeners--------------------------------    
    public void prepararNuevo(ActionEvent evt){//accionEvent de faces
        loan=new Prestamo();
        accion="Nuevo";
    }
    
    public void prepararEditar(ActionEvent evt){
        System.out.println(evt.getComponent().getClientId());
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[3];
        int index=Integer.parseInt(num);
        System.out.println("el numero es: "+index);
       // loan=lista.get(index);
        accion="Editar";
    }
    public void prepararEliminar(ActionEvent evt){
        String arr[]=evt.getComponent().getClientId().split(":");
        String num=arr[3];
        int index=Integer.parseInt(num);
        System.out.println("el numero es: "+index);
        //loan=lista.get(index);
        accion="Eliminar";
    }
    public void agregarLibro(ActionEvent evt){
    Libro book=libroBl.findByClaveforLend(codigoLibro);
    if(book!=null){
    librosLista.add(book);
    }
    }
}
